package com.zkthink.ceres.promotion.dao;

import com.zkthink.base.mapper.SuperMapper;
import com.zkthink.ceres.promotion.entity.Promotion;

import com.zkthink.ceres.promotion.vo.admin.PromotionAdminVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * <p>
 * Mapper 接口
 * 营销活动表
 * </p>
 *
 * @author kellen
 * @date 2020-06-16
 */
@Repository
public interface PromotionMapper extends SuperMapper<Promotion> {

	/** 查询活动信息，附带报名信息
	 * @author 善泉 2020/6/20 17:15
	 * @return
	 */
	List<PromotionAdminVO> findPromotionListWithApplyInfo(@Param("name") String name, @Param("promotionStatus") int promotionStatus,
														  @Param("promotionType") Integer promotionType, @Param("auditStatus") int auditStatus,
														  @Param("start") int start, @Param("pageSize") int pageSize);

	/** 查询数量
	 * @author 善泉 2020/6/20 17:23
	 * @return
	 */
	Long findPromotionListWithApplyInfoCount(@Param("name") String name, @Param("promotionStatus") int promotionStatus,
														  @Param("promotionType") Integer promotionType, @Param("auditStatus") int auditStatus);

	/**
	 * 报名已开始，但是还没有改变状态的，定时器处理
	 * @return
	 */
    int updateStatusToApplyStart();

	/**
	 * 报名已结束，但是还没有改变状态，定时器处理
	 * @return
	 */
	int updateStatusToApplyEnd();

	/**
	 * 到了活动开始时间但是还没有改变状态
	 * @return
	 */
	int updateStatusToActivityStart();
}
